"""
测试数据初始化脚本
用于初始化测试数据，方便开发和演示
"""
import click
from app import create_app
from app.extensions import db
from app.utils.fake_data import create_all_fake_data

app = create_app()

@click.command()
@click.option('--drop', is_flag=True, help='是否先删除所有表')
@click.option('--verify', is_flag=True, prompt='此操作将重置数据库并添加测试数据，确认继续吗?', 
              help='确认操作，需要明确确认')
def init_test_data(drop, verify):
    """初始化测试数据"""
    if not verify:
        click.echo('操作已取消')
        return
    
    with app.app_context():
        if drop:
            click.echo('删除所有表...')
            db.drop_all()
        
        click.echo('创建所有表...')
        db.create_all()
        
        click.echo('正在生成测试数据...')
        data = create_all_fake_data()
        
        click.echo(f"已创建 {len(data['users'])} 个用户")
        click.echo(f"已创建 {len(data['providers'])} 个物流服务商")
        click.echo(f"已创建 {len(data['products'])} 个商品")
        click.echo(f"已创建 {len(data['orders'])} 个订单")
        click.echo(f"已创建 {len(data['records'])} 条库存记录")
        
        click.echo('测试数据初始化完成!')

if __name__ == '__main__':
    init_test_data() 